package com.happyfamily.springboot.crowdsourcingplatform.dao.pan;

import com.happyfamily.springboot.crowdsourcingplatform.model.Need;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @Author Administrator
 * @create 2020/02/26 11:03
 */
@Mapper
public interface DemandDao
{


	/**
	 * 查询总共有多少条已经同过审核的
	 * @return
	 */
	@Select("select count(*) from need where nstatus ='已审核'")
	Long countAllNeeds();


	/**
	 * 查询已经通过审核的数据
	 * @param startPosition
	 * @param limit
	 * @return
	 */
	@Select("select * from need where nstatus ='已审核' order by nendtime desc  limit #{startPosition},#{limit}")
	List<Need> getAllNeedsByPage(@Param("startPosition") Integer startPosition, @Param("limit") Integer limit);


	/**
	 * 搜索的页数，查询条件标题和类型
	 * @param ntitle
	 * @param sname
	 * @return
	 */
	Long getNeedByFuzzyNeedTitle(String ntitle, String sname);

	/**
	 * 搜索的数据，查询条件标题和类型
	 * @param ntitle
	 * @param sname
	 * @param offset
	 * @param limit
	 * @return
	 */
	List<Need> getNeedByFuzzyNeedNamePage(String ntitle, String sname, Integer offset, Integer limit);


	/**
	 * 我已发布的需求页数
	 * @param account
	 * @return
	 */
	@Select("select count(*) from need where nuseraccount =#{account}")
	Long getUserNeedByAccount(String account);



	/**
	 * 我已发布的需求的数据
	 * @param offset
	 * @param limit
	 * @return
	 */
	@Select("select * from need where nuseraccount =#{nuseraccount} order by nendtime desc  limit #{offset},#{limit}")
	List<Need> getUserNeedByPage(@Param("offset") Integer offset, @Param("limit") Integer limit,@Param("nuseraccount")String nuseraccount);


	/**
	 * 搜索的页数，查询条件标题和类型，个人需求
	 * @param ntitle
	 * @param sname
	 * @param account
	 * @return
	 */
	Long getNeedByUserSearch(String ntitle, String sname, String account);


	/**
	 * 搜索的数据，查询条件标题和类型,个人需求
	 * @param ntitle
	 * @param sname
	 * @param account
	 * @param offset
	 * @param limit
	 * @return
	 */
	List<Need> getSacherUserNeed(String ntitle, String sname, String account, Integer offset, Integer limit);
}
